package com.etc.service;

import com.etc.dto.CountVO;
import com.etc.entity.Order;
import com.etc.entity.Time;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface OrderService {
    /**
     * 通过医生编号获取相应预约信息
     */
    List<Order> finOrderDetailByDoctorId(String doctorId);

    /**
     * 对查询的预约情况进行分页
     */
    PageInfo<Order> finOrderDetailByDoctorIdByPage(String doctorId, Integer pageNum, Integer pageSize);

    /**
     * 查询所有预约情况进行分页
     */
    PageInfo<Order> findOrderDetail(Order order, Integer pageNum, Integer pageSize);

    /**
     * 查询订单医生就诊人支付列表
     * @param order
     * @return
     */
    List<Order> findOrderPatientDoctorPayList(Order order);

    /**
     * 查询订单医生就诊人支付列表
     * @param patientId
     * @return
     */
    List<Order> getPayAndDetailList(String patientId);

    /**
     * 查询出诊详细信息分页
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<Order> findOrderPatientDoctorList(Integer pageNum, Integer pageSize);

    /**
     * 根据就诊人id获取预约集合
     * @param order
     * @return
     */
    List<Order> getPatientByPatientId(Order order);


    /**
     * 根据两个参数获取医生在date日始七天的预约对象Order列表
     * @param doctorId
     * @param date
     * @return
     */
    List<Order> getOrdersByDoctorId(String doctorId, String date);


    /**
     * 根据订单编号修改订单状态
     * @return
     */
    boolean updateOrderStatusByOrderId(Order order);

    /**
     * 插入订单列表
     * @param orders
     * @return
     */
    boolean addOrder(List<Order> orders);

    /**
     * 统计医生有几个患者
     * @return
     */
    List<CountVO> getCount();
}
